From efe0169c591d4987872143a3760228a694af33c4 Mon Sep 17 00:00:00 2001 From: tholam Date: Sat, 30 Nov 2013 18:49:21 -0600 Subject: [PATCH] Set site logo url in ResourceLoaderSiteModule instead of inline styles Requires skins to use the 'mw-wiki-logo' class on the logo element for the styles to apply. This is backwards compatible with skins not using that class and using inline styles instead. Bug: 56257 Change-Id: I89e32fcd27c9f07e889aa5b67d7d97d06b412aea --- RELEASE-NOTES-1.25 | 2 + .../ResourceLoaderSiteModule.php | 43 +++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/RELEASE-NOTES-1.25 b/RELEASE-NOTES-1.25 index c935ffeb39..c8bea32a6c 100644 --- a/RELEASE-NOTES-1.25 +++ b/RELEASE-NOTES-1.25 @@ -27,6 +27,8 @@ changes to languages because of Bugzilla reports. removed. See https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery for migration guide for creators and users of custom skins that relied on it. * Javascript variable 'wgFileCanRotate' now only available on Special:Upload. +* (bug 56257) Set site logo url in ResourceLoaderSiteModule instead of inline + styles in the HTML output. == Compatibility == diff --git a/includes/resourceloader/ResourceLoaderSiteModule.php b/includes/resourceloader/ResourceLoaderSiteModule.php index 1d9721aa7a..6de3d733b8 100644 --- a/includes/resourceloader/ResourceLoaderSiteModule.php +++ b/includes/resourceloader/ResourceLoaderSiteModule.php @@ -53,6 +53,49 @@ class ResourceLoaderSiteModule extends ResourceLoaderWikiModule { /* Methods */ + /** + * @param $context ResourceLoaderContext + * @return array + */ + public function getStyles( ResourceLoaderContext $context ) { + global $wgLogo; + + $styles = parent::getStyles( $context ); + $styles['all'][] = '.mw-wiki-logo { background-image: ' . + CSSMin::buildUrlValue( $wgLogo ) . + '; }'; + + return $styles; + } + + /** + * @param $context ResourceLoaderContext + * @return boolean + */ + public function isKnownEmpty( ResourceLoaderContext $context ) { + // Regardless of whether the wiki page(s) exist, we always + // provide mw-wiki-logo styles. + return false; + } + + /** + * @param $context ResourceLoaderContext + * @return int|mixed + */ + public function getModifiedTime( ResourceLoaderContext $context ) { + $parentMTime = parent::getModifiedTime( $context ); + return max( $parentMTime, $this->getHashMtime( $context ) ); + } + + /** + * @param $context ResourceLoaderContext + * @return string: Hash + */ + public function getModifiedHash( ResourceLoaderContext $context ) { + global $wgLogo; + return md5( parent::getModifiedHash( $context ) . $wgLogo ); + } + /** * Gets group name * -- 2.20.1